Release 10.1A: OpenEdge Application Server:
Developing AppServer Applications
Load balancing and session models
If you deploy an application using load balancing, the NameServer distributes client load according to configured proportions across multiple AppServer instances that support the same application service.
Session-managed load balancing
If your application is session-managed, load balancing occurs at the time the client connects to the application service. That is, the NameServer distributes the load by connecting the client to an AppServer according to the configured proportion and all requests from that client go to the connected AppServer.
Session-free load balancing
If your application is session-free, load balancing occurs both at the time of the initial logical connection and for every remote request invoked on that logical connection:
- When it first connects to an application service, the client asks the NameServer what AppServer broker it should connect to as many times as there are initial connections specified for the binding and creates a physical connection to each broker as the NameServer specifies. The NameServer specifies the brokers for the initial connection request based on the load-balancing settings for the application service. The result of this physical connection process is the connection pool where the number of connections are distributed across the available AppServers approximately according to the configured load-balancing formula.
- When it invokes a remote procedure request to a connected session-free application service, the client asks the NameServer what broker to use for the remote request. The NameServer returns the broker to use according to the configured load-balancing formula. If the client already has a physical connection available to the broker the NameServer specifies, the client uses that connection to run the request. If the client has no available connection to that broker, the client creates another connection to execute the request, up to the maximum number of physical connections specified for the binding. If creating a connection will exceed this connection maximum, the request is queued for the next available connection on any AppServer broker in the connection pool. If creating such a connection fails (because the broker is unavailable), OpenEdge raises a run-time error on that request.
So, for a session-free application service, load balancing is determined with finer granularity than for a session-managed application service.
Configuring load balancing
For more information on load balancing an AppServer application, see the information on AppServer administration in OpenEdge Application Server: Administration . For information on how to specify the initial and maximum connections for Progress 4GL clients connecting to a session-free application service, see Chapter 3, " Programming Progress 4GL Client Applications." For information on how Web service properties affect session configuration, see the information on Web service administration in OpenEdge Application Server: Administration .
|
Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |